package com.example.dao;

import com.example.pojo.dto.PageDTO;
import com.example.pojo.dto.SaveProductAllotApplyDTO;
import com.example.pojo.dto.UpdateProductAllotApplyDTO;
import com.example.pojo.orm.ProductInventory;

import java.util.List;

/**
 * @author 季鑫利
 * @description 商品库存dao
 */
public interface ProductInventoryDao {

    /**
     * 新增商品库存信息
     *
     * @param saveProductAllotApplyDTO 新增商品库存信息
     * @return 影响行数
     * @author 季鑫利
     */
    int saveProductInventory(SaveProductAllotApplyDTO saveProductAllotApplyDTO);

    /**
     * 删除商品库存信息
     *
     * @param id 商品库存id
     * @return 影响行数
     * @author 季鑫利
     */
    int removeProductInventory(Integer id);

    /**
     * 更新商品库存信息
     *
     * @param updateProductAllotApplyDTO 更新商品库存信息
     * @return 影响行数
     * @author 季鑫利
     */
    int updateProductInventory(UpdateProductAllotApplyDTO updateProductAllotApplyDTO);

    /**
     * 查询所有商品库存
     *
     * @param pageDTO 分页参数
     * @return 所有商品库存
     * @author 季鑫利
     */
    List<ProductInventory> queryProductInventory(PageDTO pageDTO);

    /**
     * 根据商品库存id查询商品库存信息
     *
     * @param id 商品库存id
     * @return 商品库存信息
     * @author 季鑫利
     */
    ProductInventory queryProductInventoryById(Long id);

    /**
     * 查询总记录数
     *
     * @return 条数
     * @author 季鑫利
     */
    int count();
}
